/*
 * Copyright (C) 2019-2020 Alibaba Group Holding Limited
 */

/******************************************************************************
 * @file     board_init.c
 * @brief    CSI Source File for board init
 * @version  V1.0
 * @date     31. June 2018
 ******************************************************************************/
#include <stdio.h>
#include <stdint.h>

#include <soc.h>
#include <csi_core.h>
#include <silan_syscfg.h>

#include <drv/usart.h>
#include <pin_name.h>
#include <pinmux.h>

#include "board.h"

extern void ioreuse_initial(void);
static void board_pinmux_config(void)
{
    //console
    drv_pinmux_config(CONSOLE_TXD, CONSOLE_TXD_FUNC);
    drv_pinmux_config(CONSOLE_RXD, CONSOLE_RXD_FUNC);

    // BT
    drv_pinmux_config(BT_UART_TXD, BT_UART_TXD_FUNC);
    drv_pinmux_config(BT_UART_RXD, BT_UART_RXD_FUNC);

    //WiFi
    drv_pinmux_config(WIFI_SD_DAT0, WIFI_SD_DAT0_FUNC);
    drv_pinmux_config(WIFI_SD_DAT1, WIFI_SD_DAT1_FUNC);
    drv_pinmux_config(WIFI_SD_DAT2, WIFI_SD_DAT2_FUNC);
    drv_pinmux_config(WIFI_SD_DAT3, WIFI_SD_DAT3_FUNC);
    drv_pinmux_config(WIFI_SD_CLK, WIFI_SD_CLK_FUNC);
    drv_pinmux_config(WIFI_SD_CMD, WIFI_SD_CMD_FUNC);

    //SD card
    drv_pinmux_config(TF_SDIO_DAT0, TF_SDIO_DAT0_FUNC);
    drv_pinmux_config(TF_SDIO_DAT1, TF_SDIO_DAT1_FUNC);
    drv_pinmux_config(TF_SDIO_SCL, TF_SDIO_SCL_FUNC);
    drv_pinmux_config(TF_SDIO_SDA, TF_SDIO_SDA_FUNC);
    drv_pinmux_config(TF_SDIO_CLK, TF_SDIO_CLK_FUNC);
    drv_pinmux_config(TF_SDIO_CMD, TF_SDIO_CMD_FUNC);
}

void board_init(void)
{
    ioreuse_initial();

    board_pinmux_config();

    /* close m0/dsp debug */
    silan_mcu_debug_close();
    silan_dsp_debug_close();
}
